//
//  MCCellInfo.h
//  shandianxiu
//
//  Created by delicious on 2017/11/25.
//  Copyright © 2017年 aojun. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BaseTableView.h"

typedef CGFloat(^updateHeight)(NSString *cellId ,UITableView *tableView,NSIndexPath *indexPath);
typedef void(^initCellBlock)(UITableViewCell *tableViewCell,NSIndexPath *index);

@interface MCCellInfo : NSObject
@property (nonatomic, strong) NSString * cellId;
@property (nonatomic)         Class      aClass;
@property (nonatomic, assign) CGFloat    cellHeight;
@property (nonatomic, assign) UITableViewCellStyle cellStyle;
@property (nonatomic, copy)   initCellBlock initBlock;

/**
 *  @param cellId cellId
 *  @param Class cell类
 *  @param cellHeight cell高度
 *  @param tableView tableView
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass Height:(CGFloat)cellHeight TableView:(UITableView *)tableView;
/**
 *  @param cellId cellId
 *  @param cellBlock 初始化cell
 *  @param Class cell类
 *  @param cellHeight cell高度
 *  @param tableView tableView
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass InitCellBlock:(initCellBlock)cellBlock Height:(CGFloat)cellHeight TableView:(UITableView *)tableView;

/**
 *  @param cellId cellId
 *  @param cellBlock 初始化cell
 *  @param Class cell类
 *  @param isBiao 是否更新高度
 *  @param cellHeight cell高度
 *  @param tableView tableView
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass InitCellBlock:(initCellBlock)cellBlock Height:(CGFloat)cellHeight TableView:(UITableView *)tableView IsBian:(BOOL)isBiao;
/**
 *  @param cellId cellId
 *  @param isBiao 是否更新高度
 *  @param Class cell类
 *  @param cellHeight cell高度
 *  @param tableView tableView
 */

+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass Height:(CGFloat)cellHeight TableView:(UITableView *)tableView IsBian:(BOOL)isBiao;
/**
 *  @param cellId cellId
 *  @param cellBlock 初始化cell
 *  @param Class cell类
 *  @param tableView tableView
 *  @param cellStyle cell类型
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass InitCellBlock:(initCellBlock)cellBlock TableView:(UITableView *)tableView CellStyle:(UITableViewCellStyle)cellStyle;
/**
 *  @param cellId cellId
 *  @param cellHeight cell高度
 *  @param Class cell类
 *  @param tableView tableView
 *  @param cellStyle cell类型
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass Height:(CGFloat)cellHeight TableView:(UITableView *)tableView CellStyle:(UITableViewCellStyle)cellStyle;
/**
 *  @param cellId cellId
 *  @param cellHeight cell高度
 *  @param Class cell类
 *  @param tableView tableView
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass UpdateHeight:(updateHeight)cellHeight TableView:(UITableView *)tableView forIndexPath:(NSIndexPath *)indexPath  IsBian:(BOOL)isBiao;
/**
 *  @param cellId cellId
 *  @param cellHeight cell高度
 *  @param Class cell类
 *  @param cellStyle cell类型
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass UpdateHeight:(updateHeight)cellHeight TableView:(UITableView *)tableView forIndexPath:(NSIndexPath *)indexPath CellStyle:(UITableViewCellStyle)cellStyle IsBian:(BOOL)isBiao;
/**
 *  @param cellId cellId
 *  @param cellHeight cell高度
 *  @param cellBlock 初始化cell
 *  @param Class cell类
 *  @param tableView tableView
 *  @param cellStyle cell类型
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass InitCellBlock:(initCellBlock)cellBlock UpdateHeight:(updateHeight)cellHeight TableView:(UITableView *)tableView forIndexPath:(NSIndexPath *)indexPath CellStyle:(UITableViewCellStyle)cellStyle IsBian:(BOOL)isBiao;


/**
 *  UITableViewCellStyleDefault：一个左对齐得标题，可选的图片->标题
 *  UITableViewCellStyleValue1：图片可选择性添加；左对齐默认格式标题；右对齐浅色副标题。图片->标题->副标题
 *  UITableViewCellStyleValue2:标题字体为蓝色，右对齐；副标题左对齐，模认样式 标题->副标题
 *  UITableViewCellStyleSubtitle：顶部左对齐标题；底部左对齐副标题，图片可选择性添加 图片->标题/副标题
 */
+(MCCellInfo *)configForCellId:(NSString *)cellId Class:(Class)aClass Height:(CGFloat)cellHeight TableView:(UITableView *)tableView CellStyle:(UITableViewCellStyle)cellStyle IsBian:(BOOL)isBiao;

@end


@interface MCHFViewInfo : NSObject
@property (nonatomic, strong) NSString * viewId;
@property (nonatomic)         Class      aClass;
@property (nonatomic, assign) CGFloat    viewHeight;
+(MCHFViewInfo *)configForViewId:(NSString *)viewId Class:(Class)aClass Height:(CGFloat)viewHeight TableView:(UITableView *)tableView IsBian:(BOOL)isBiao;
+(MCHFViewInfo *)configForViewId:(NSString *)viewId Class:(Class)aClass Height:(CGFloat)viewHeight TableView:(UITableView *)tableView;
@end
